/**
 * Definition for Employee.
 * function Employee(id, importance, subordinates) {
 *     this.id = id;
 *     this.importance = importance;
 *     this.subordinates = subordinates;
 * }
 */

/**
 * @param {Employee[]} employees
 * @param {number} id
 * @return {number}
 */
 var GetImportance = function(employees, id) {
    let impMap=new Map();
    let subMap=new Map();
    for(let e of employees){
        impMap.set(e.id , e.importance);
        if(e.subordinates.length !=0){
            subMap.set(e.id , e.subordinates);
        }
    }
    function find(id){
        return subMap.has(id) ? impMap.get(id)+subMap.get(id).map((e) => find(e)).reduce((a,b) => a+b):impMap.get(id);
    }
    return find(id);
};

// 执行用时：
// 116 ms
// , 在所有 JavaScript 提交中击败了
// 23.64%
// 的用户
// 内存消耗：
// 44.5 MB
// , 在所有 JavaScript 提交中击败了
// 10.01%
// 的用户